#include<iostream>
#include<typeinfo>


template <typename T>
void ref(T const & x)    //当模版参数为饮用的时候，完全可以先生成对于右值字符串的数组，然后对其进行饮用
{
    std::cout<<"void ref:"<<typeid(x).name()<<"\n";
}

template<typename T>
void nonref(T x)  //当模版参数为常规类型的时候，T将不会生成临时对象，而是指向代码段的字符串const指针。
{
    std::cout<<"void nonref:"<<typeid(x).name()<<"\n";
}

int main()
{
    ref("hello");  //char[6];
    nonref("hello"); //const char *
    return 0;
}